package com.youmeek.ssm.module.area.service;

import com.youmeek.ssm.module.area.model.ChinaArea;
import com.youmeek.ssm.module.common.model.TreeNode;

import java.util.List;

public interface IChinaAreaService {

    /**
     * 获取最上级的Node
     *
     * @return 根节点
     */
    TreeNode<ChinaArea> getTopNode();

    /**
     * 获取第一层的Node
     *
     * @return  省以及直辖市的节点
     */
    TreeNode<ChinaArea> getTopNodeFirstLevel();

    /**
     * 通过地区编码获取子节点集合
     * @param areaCode
     * @return
     */
    List<ChinaArea> getChildsByAreaCode(String areaCode);


    /******************************************************************************************************************/

    /**
     * @description: 获取全部的区域信息
     * @return
     */
    List<ChinaArea> getAllChinaArea();

    /**
     * @param code
     * @return
     * @title: getChinaAreaByCode
     * @description:
     */
    ChinaArea getChinaAreaByCode(String code);

    /**
     * @param name
     * @return
     * @title: getChinaAreaByName
     * @description:
     */
    ChinaArea getChinaAreaByName(String name);

    /**
     * @param name
     * @return
     * @title: getChinaAreaByName
     * @description:
     */
    ChinaArea getChinaAreaByNameAndParentId(String name, String parentId);

    /**
     * @param name
     * @param regionCoding
     * @return
     * @title: getChinaAreaByNameAndRegionCode
     * @description:
     */
    ChinaArea getChinaAreaByNameAndRegionCode(String name, String regionCoding);

    /**
     * @param name
     * @return
     * @title: getChinaAreaByShortName
     * @description:
     */
    ChinaArea getChinaAreaByShortName(String name);

}
